package edu.cgpi.core.util;

import java.awt.Color;
import java.lang.reflect.Constructor;
import java.util.List;

import edu.cgpi.core.entidade.Cor;
import edu.cgpi.core.entidade.Ponto;
import edu.cgpi.core.entidade.grafico.Imagem;
import edu.cgpi.view.GerenciadorUI;

public class FabricaImagens {

	public static Imagem criarImagem(
			TipoImagem tipoImagem,
			Ponto pontoInicial, Ponto pontoFinal) {
		Imagem imagem = null;
		try {
			Constructor<? extends Imagem> construtor = tipoImagem.getClasseImagem()
					.getDeclaredConstructor(Ponto.class, Ponto.class);
			imagem = construtor.newInstance(pontoInicial, pontoFinal);
			Color cor = GerenciadorUI.getInstance().getPainelSelecaoCor().getCor();
			imagem.setCor(new Cor(cor));
		} catch (Exception e) {
			e.printStackTrace();
		}
		return imagem;
	}
	
	public static Imagem criarImagem(
			TipoImagem tipoImagem,
			List<Ponto> pontos) {
		Imagem imagem = null;
		try {
			Constructor<? extends Imagem> construtor = tipoImagem.getClasseImagem()
					.getDeclaredConstructor(List.class);
			imagem = construtor.newInstance(pontos);
			Color cor = GerenciadorUI.getInstance().getPainelSelecaoCor().getCor();
			imagem.setCor(new Cor(cor));
		} catch (Exception e) {
			e.printStackTrace();
		}
		return imagem;
	}
}